Method and apparatus for conservative motion estimation from multi-image sequences

ABSTRACT

Apparatus and methods are presented for estimating the velocity field based on a multi-image frame sequence having an integer number M frames, M is greater than two, in which a set of M−1 displaced frame difference (DFD) equations is solved using a set of iteration equations to determine a velocity field.

REFERENCE TO RELATED APPLICATION

This application is a non-provisional under 35 USC 119(e) of, and claims priority to and the benefit of U.S. Provisional Patent Application Ser. No. 61/422,758, filed Dec. 14, 2010, the entirety of which is hereby incorporated by reference.

BACKGROUND

The present disclosure relates generally to image processing and more particularly to apparatus and techniques for estimating a velocity field using a sequence of input frames. Computer vision and remote sensing applications often utilize motion field estimation from an image sequence for video coding or other purposes. Conventional velocity estimation techniques include finding a velocity or displacement field using a pair of successive image frames, and existing motion estimation models and algorithms assume that the image intensity recorded from different physical sensors obey a conservation constraint for tracer, heat, or optical flow in space and time. Popular high definition video compression solutions often perform velocity estimation using a block matching algorithm (BMA) in which all pixels of a given block or tile are assumed to be at a constant velocity vector. However, such an assumed velocity field is not continuous at the boundaries between adjacent blocks, leading to poor video reproduction results. Accordingly, there remains a need for improved velocity estimation techniques and apparatus by which improved accuracy and continuous velocity fields is provided with a small set of velocity field parameters to facilitate improved image processing for high ratio video compression and other applications.

SUMMARY OF DISCLOSURE

Various details of the present disclosure are hereinafter summarized to facilitate a basic understanding, where this summary is not an extensive overview of the disclosure, and is intended neither to identify certain elements of the disclosure, nor to delineate the scope thereof. Rather, the primary purpose of this summary is to present some concepts of the disclosure in a simplified form prior to the more detailed description that is presented hereinafter.

Methods and apparatus are disclosed for estimating velocity fields using an image sequence with three or more frames, in which a system of equations is solved which includes two or more displaced frame difference (DFD) equations by an iteration technique for solving velocities on node points. The inventor has appreciated that such an equation system is fully or over-constrained and does not require any additional smoothness constraints. In addition, the inventor has appreciated that the motion field estimation preferably crosses as many temporal frames as possible so that previous or subsequent frames can be reconstructed by motion-compensated prediction and interpolation techniques based on an initial reference frame. The disclosed techniques employ a fully or over-constrained system based on at least three frames, in which the velocity field at a fixed pixel point can be solved using two or more DFD equations, and is particularly suitable for video compression applications in which the motion of moving objects in a scene is conservative or near-conservative. Moreover, the methods and apparatus disclosed herein avoid the block boundary velocity field discontinuities found in conventional block matching algorithms, since the pixel velocity values within a given block are not assumed to be constant.

In accordance with one or more aspects of the disclosure, a method is provided for estimating a velocity field using an image sequence having more than two frames. The method includes providing a set of equations having an integer number M−1 displaced frame difference (DFD) equations, where M is greater than two, as well as receiving an input image sequence comprising at least M image frames. The individual image frames include multidimensional image data corresponding to pixel locations at M different times. The method further includes solving the equation set using a set of iteration equations and the image data to determine a velocity field describing velocity vectors at pixel locations at a reference time. In certain embodiments, the equation set is solved by evaluating derivatives with respect to directional variables in the iteration equations according to a bilinear function. In certain embodiments, moreover, a progressive relaxation approach is used in the iteration in which an initial block size “n” is set defining an initial value for the number of interpolation points in the x and y directions, and the block size is selectively reduced during the iteration to progressively relax an amount of over-constraint of the equation set.

In accordance with further aspects of the disclosure, a motion estimator apparatus is provided with at least one processor and a memory, where the memory stores a set of equations having two or more DFD equations. The processor receives an input image sequence that includes an integer number M image frames with multidimensional image data corresponding to pixel locations at corresponding times, where M is greater than two. The processor solves the equation set using the image frames to determine a velocity field describing velocity vectors at pixel locations at the initial time. In certain embodiments the processor solves the equation set by starting an iteration with an initial block size defining initial values for the number of interpolation points, and selectively reduces the block size during the iteration to progressively relax an amount of over-constraint of the equation set. In certain embodiments, the processor solves the equation set by evaluating derivatives with respect to directional variables in the iteration equations according to a bilinear velocity field modeling.

In accordance with further aspects of the disclosure, a computer readable medium is provided with computer executable instructions for performing the disclosed motion estimation methods.

BRIEF DESCRIPTION OF THE DRAWINGS

The following description and drawings set forth certain illustrative implementations of the disclosure in detail, which are indicative of several exemplary ways in which the various principles of the disclosure may be carried out. The illustrated examples, however, are not exhaustive of the many possible embodiments of the disclosure. Other objects, advantages and novel features of the disclosure will be set forth in the following detailed description of the disclosure when considered in conjunction with the drawings.

FIGS. 1 and 2 are schematic diagrams illustrating a multi-image input video sequence including two or more image frames and corresponding pixel data obtained at different times.

FIG. 3 is a schematic diagram illustrating an exemplary processor-implemented motion estimator apparatus for determining a velocity vector field from the input image sequence of FIGS. 1 and 2.

FIGS. 4A and 4B illustrate a flow diagram showing an exemplary velocity vector field estimation process in accordance with one or more aspects of the disclosure.

FIGS. 5 and 6 are schematic diagrams illustrating exemplary portions of an image frame partitioned into blocks or tiles.

FIG. 7 is a flow diagram illustrating an exemplary adaptive framework for solving a system of equations in accordance with further aspects of the disclosure.

DETAILED DESCRIPTION OF THE DISCLOSURE

One or more embodiments or implementations are hereinafter described in conjunction with the drawings, where like reference numerals refer to like elements throughout, and where the various features are not necessarily drawn to scale.

FIG. 1 illustrates an input image sequence 10 with a plurality of image frames 12 including a first image frame 12 ₁, a final frame 12 _(n), and one or more intervening frames 12 wherein the input sequence 10 can include any integer number of frames 12 that is greater than “M” and where M is an integer greater than 2. As seen in FIG. 2, each individual image frame 12 _(i) includes an integer number of pixel data values, each corresponding to a two-dimensional pixel location (i, j) in an x-y plane, where each pixel location is indicated with an integer subscript index “i” indicating an x direction pixel index (1≦i≦I) and an integer subscript index “j” indicating a y direction pixel index (1≦j≦J). In the illustrated example, moreover, the image data represents optical (e.g., visible) data, such as video frames 12, where the input sequence 10 shows a vehicle artifact 14 moving toward a lower right corner of the image frame as the sequence proceeds from an initial (e.g., first) time t₁ (frame 12 ₁) to a final time (e.g., t₃ for frame 12 _(n)). In practice, the individual image data for a given pixel location i, j can be a single value representing light intensity (luminance) and/or an individual data point may include luminance as well as color or chrominance data values (e.g., L*a*b*, RGB, CMYK data, etc.). In other embodiments, the image sequence 10 can include multidimensional image data representing “thermal” images, for instance, where the data values represent temperature, or other image sequences can be used in which the image intensity is recorded from physical sensors, for tracer, heat, or optical flow in space and time.

FIG. 3 illustrates an exemplary motion estimator apparatus 100 that can perform various image processing tasks including determining or estimating a velocity field 140 from an input image sequence 10 having a first image frame 12 including multidimensional image data corresponding to a plurality of pixel locations i, j at a first time t₁, as well as second and third image frames 12 including multidimensional image data corresponding to a plurality of pixel locations at corresponding second and third times t₂ and t₃. The apparatus 100 can be used to determine a velocity field 140 according to the disclosed techniques using any three or more image frames 12.

The apparatus 100 includes one or more processors 110 operatively coupled with a memory 120, and the apparatus 100 can be implemented in a single processing device or in distributed fashion across two or more processing elements 110. In the illustrated embodiment of FIG. 3, the processor 110 implements an equation solver 110 a used for solving iteration equations 132 with a Progressive Relaxation of Over-Constraint (PROC) algorithm. In addition, the motion estimator apparatus 100 may form part of a larger system, such as a video processor coupled to a transmitter, a video camera, a frame rate up-converter, etc.

The estimator apparatus 100 receives the input image sequence 10 and generates a velocity vector field 140 which can be stored in the internal memory 120 and/or maybe outputted by the apparatus 100 alone or as part of a processed image sequence (not shown). In addition, the estimator apparatus 100 provides an equation system 130, which may be stored in the electronic memory 120. The illustrated estimator 100 further includes at least one iteration equation 132 and a bilinear motion vector function 134, which can be stored in the memory 120 or is otherwise be accessible for use by the processor 110 in performing the velocity field estimation functions set forth herein. In particular, the iteration equations 132 in certain embodiments are derived from the equation set 130 using a nonlinear least squares model and the bilinear displacement field modeling, as discussed further below. In addition, the bilinear motion vector function 134 in certain embodiments expresses a multidimensional velocity field.

The equation system 130 is a nonlinear set of M−1 displaced frame difference (DFD) equations, where two DFD equations can be used for multi-image sequences in which three image frames 12 are used in estimating the velocity field 140. In other embodiments, M can be greater than 3. For example, if M=4, three DFD equations can be used. The estimated velocity field 140 describes velocity vectors v_(ij)(t₁) at pixel locations i, j at a reference time t₁, for example a velocity vector with two spatial components u_(ij)(t₁) in a first (e.g., “x”) direction and v_(ij)(t₁) in a second (e.g., “y”) spatial direction at the reference time. In the following discussion, it is assumed that the estimator apparatus 100 is used to estimate the velocity field vectors v_(ij)(t₁) at time t₁ using frame data 12 from frames corresponding to the reference time t₁ as well as M−1 (e.g., two) other times t₂ and t₃ for cases where M=3. In addition, these same concepts apply where M is greater than 3.

In the illustrated example, the equation set 130 includes displaced frame difference equations (DFD_(ijs)), with one equation for each frame pair 12 used in estimating the velocity field 140, where DFD equations are provided for an integer number “s” frames where 1≦s≦M. In one embodiment shown in FIG. 3, the DFD equations are forward or backward (by reversing the frame order) DFD equations, although not a strict requirement of the disclosure. Using the image data from the M=3 received input frames 12 corresponding to times t₁, t₂ and t₃, the processor 110 is programmed to solve the equation set 130 to determine a velocity field describing velocity vectors v_(ij)(t₁) at pixel locations i, j at t₁ using initial conditions 136 including known or estimated velocity field values at t₁. The inventor has appreciated that when M=3, the set of two DFD equations 130 has a total of two unknown variables for each pixel location i, j (u_(ij)=u_(ij)(t₁), v_(ij)=v_(ij)(t₁)), and therefore the equation set 130 is fully constrained without approximation and without imposition of any additional constraints or assumptions.

In certain embodiments, the PROC equation solver 110 a is implemented using the processor 110 in order to solve the DFD equations 130 using an iterative numerical technique to determine the velocity field 140, and may employ any suitable initial conditions 136 and loop termination logic, including without limitation a maximum number of iterations per pixel location i, j, or a maximum number of iterations per frame s, alone or in combination with termination based on computed cost function value changes being less than a predetermined threshold value (e.g., convergence conditions). The estimator apparatus 100 may provide the estimated velocity field 140 for use in a variety of applications, such as video processing using an interpolator to construct one or more additional frames for frame rate up-conversion. In another example, the estimator 100 may provide the velocity field 140 for use with compression processing in a video encoder for selectively dropping certain frames 12 received with the input image sequence 10. The velocity field 140 can be produced by the estimator apparatus 100, moreover, as either a full density field V_(ij)(t₁) including velocity vectors for each pixel location i, j or a subset thereof (e.g., V_(kl)(t₁)) including velocity vectors only on nodes k, l since the off-node velocity vectors can be computed by the bilinear motion function 134 based on the estimated motion field V_(kl)(t₁)) on node points.

FIGS. 4A and 4B illustrate an exemplary method 300 for processing multi-image data from an input image sequence 10 in accordance with further aspects of the present disclosure. Although the method 300 is illustrated and described below in the form of a series of acts or events, it will be appreciated that the various methods of the disclosure are not limited by the illustrated ordering of such acts or events. In this regard, except as specifically provided hereinafter, some acts or events may occur in different order and/or concurrently with other acts or events apart from those illustrated and described herein in accordance with the disclosure. It is further noted that not all illustrated steps may be required to implement a process or method in accordance with the present disclosure, and one or more such illustrated acts may be combined or omitted. The illustrated method 300 may be implemented in hardware, processor-executed software, or combinations thereof, such as in the exemplary motion estimator apparatus 100 described above, and may be embodied in the form of computer executable instructions stored in a computer readable medium, such as in a memory 120 operatively associated with the processor 110 in one example.

Beginning at 302, an input image sequence 10 is received. The sequence 10 is a multi-image sequence including at least M image frames, where each frame 12 includes multidimensional image data corresponding to pixel locations (i, j) at M different times (e.g., t₁, t₂ and t₃). The method 300 also includes presetting initial values of the motion field at an initial reference time (e.g., t₁) at 304. In one possible implementation illustrated in FIG. 4A, seed values for the velocity vector components u_(ij)(t₁) and v_(ij)(t₁) are initialized at 304 to be 0.01 for each pixel location i, j, although this is one non-limiting example. A block size integer value (n₀) is preset at 306, which represents an integer number of pixels within an analysis block or tile of the images 12, and in certain embodiments sets the values for n_(x) and n_(y) to indicate the number of interpolation points on the orthogonal “x” and “y” directions of the image frames 12. In the example of FIG. 4A, any integer value can be used for presetting the block size n₀, such as 5 in one implementation. At 306, moreover, an initial iteration block size n is preset to an integer value that is greater than n₀. As discussed below, certain embodiments of the velocity field estimator apparatus 100 implement a progressive relaxation algorithm in which the block size “n” is selectively reduced during iteration to progressively relax an amount of over-constraint of the equation set 130. At 308 in FIG. 4A, a loop count parameter “Z” is preset to an integer value, such as 10 in one example. In addition, an initial Levenburg-Marquardt factor λ is preset at 310 for the iteration processing. In one example, this factor A is preset to 0.001, although other values can be used.

An integer number M−1 DFD equations are provided at 320, which may be stored in the estimator memory 120. In the illustrated embodiment, the DFD equations are of the following form:

DFD_(ijs) =l(i+(t _(s) −t ₁)u _(ij) ,j+(t _(s) −t ₁)v _(ij) ,t _(s))−l _(ij)(t ₁)=0∀(1<s≦M),  (1)

where l is an intensity of the image data, i is the pixel index in a first direction x, j is the y direction pixel index, s is a frame index, t_(s) is a time corresponding to a currently indexed frame 12, t₁ is the first one of the M different times (the reference time for which the velocity field is being estimated), u_(ij) is the x direction component of the velocity field 140, and v_(ij) is the y direction velocity field component. Since the DFD equations (1) are indexed by the frame index “s”, the set 130 includes an integer number M−1 of such equations. The inventor has appreciated that more than one DFD equation exists on a fixed pixel point from more than two successive frames 12, particularly where the motion of all moving objects in the scene is conservative or near conservative, and that these DFD equations (1) contain a unique conservative velocity field that crosses all the frames in such a conservative system. Thus, the DFD equations (1) express a temporal integral form of the optical flow conservative constraint, where l_(ij)(t)=l(i, j, t), u_(ij)=u_(ij)(t₁)=u(i, j, t₁) and v_(ij)=v_(ij)(t₁)=v(i, j, t₁) are optical flow intensity, two components of conservative velocities on pixel points at time t=t₁, sε[2, . . . , M], and M is the number of successive frames (>2). Moreover, since the number of the DFD equations (1) for all sε[2, . . . , M] is equal to M−1, the system is fully constrained or over-constrained if M>2 for the conservative velocity field. Thereafter, the process 300 solves the equation set 130 using the iteration equations 132 and the image data of the received image frames 12 to determine the velocity field 140 describing velocity vectors v_(ij)(t₁) at pixel locations (i, j) at time t₁.

At 330 in FIG. 4A, the velocities on node points are solved by the iteration equations 132 and the velocity field estimate v_(ij)(t₁) is updated in the local domain Ω_(kl) (FIG. 6 below), after which the process 300 proceeds to 360 in FIG. 4B where a cost function is evaluated according to equation (3) below. A determination is made at 340 (FIG. 4B) as to whether the cost function is minimized or another termination condition is satisfied. If so (YES at 340), the process 300 proceeds to 350 where a determination is made as to whether the block size “n” is equal to the final block size value n₀ preset at 304 in FIG. 4A. If so (YES at 350), the motion field estimation is complete at 360.

If the cost function is not minimized and no other termination conditions are satisfied (NO at 340 in FIG. 4B), the Levenburg-Marquardt factor λ Is multiplied by 10 for the next iteration at 342, and the process 300 returns to again solve the iteration equations at 330 in FIG. 4A. This iterative algorithm continues as described above until the cost function (equation (3) below) is minimized or another termination condition is satisfied (YES at 340) and the block size “n” has not yet reached the preset value of n₀ (NO at 350). In this case, a determination is made at 352 as to whether the preset value “Z” iterations have occurred since the last adjustment to the block size parameter “n”. If so (YES at 352), the block size “n” is decremented at 354, and the velocity field estimate v_(ij)(t₁) is updated at 356, after which the process 300 returns to again solve the iteration equations at 330 in FIG. 4A. Otherwise (NO at 352 and FIG. 4B), the current block size value “n” is maintained, the velocity field estimate v_(ij)(t₁) is updated at 356, and the process 300 returns to 330 in FIG. 4A for further iterations. In this manner, the process 300 provides an iterative approach for estimating the velocity field v_(ij)(t₁)={u_(ij)(t₁), v_(ij)(t₁)} at the reference time t₁ using the DFD equations and the iteration equations 132 in the system 130.

Referring also to FIGS. 5 and 6, an image 400 is shown in which exemplary portions of an image frame 12 are illustrated. As seen in FIG. 5, the pixel locations are partitioned into blocks or tiles with node points 402 at the corners of the blocks (node points 402 indicated as crosshatched or white squares in FIGS. 5 and 6). During the iterations of the process 300, the current value of the block size parameter “n” sets the number of interpolation points n_(x) and n_(y) on the “x” and “y” directions, respectively, and FIG. 6 illustrates the blocks in a local domain Ω proximate a particular node 402 in the image 400.

Referring also to FIG. 7, the velocity estimation apparatus 100 thus employs M−1 DFD equations in the set 130 along with the iteration equations 132 and the multi-image input sequences 10 to estimate the velocity field 140. The inventor has recognized that the DFD equations on all pixel locations is a nonlinear equation system 130, and since there may exist multiple local minimum solutions under lower degrees of over-constraint, a spatial velocity field modeling is employed in an adaptive framework 500 which selectively adjusts the degree of over-constraint from a higher degree over-constraint to a lower degree over-constraint by varying the block size parameter “n” for solving the nonlinear problem 130. In this regard, the above DFD equations (1) provide sufficient number of equations to solve the conservative velocity field if M>2, and a two-dimensional function can be expressed by a Lagrange bilinear polynomial as set forth in the following equation (2):

$\begin{matrix} {{{f\left( {x,y} \right)} = {\sum\limits_{\alpha = 0}^{1}{\sum\limits_{\beta = 0}^{1}{{f\left( {{p + {\alpha \; n_{x}}},{q + {\beta \; n_{y}}}} \right)}{H_{{p + {\alpha \; n_{x}}},{q + {\beta \; n_{y}}}}\left( {x,y} \right)}}}}},} & (2) \end{matrix}$

where function H_(a, b) (x, y) is defined by:

${H_{a,b}\left( {x,y} \right)} = {\frac{1}{n_{x}n_{y}}\left\{ \begin{matrix} {\left( {n_{x} - x + p} \right)\left( {n_{y} - y + q} \right)} & \left( {a = {{p\bigcap b} = q}} \right) \\ {\left( {x - p} \right)\left( {n_{y} - y + q} \right)} & \left( {a = {{p + n_{x}\bigcap b} = q}} \right) \\ {\left( {n_{x} - x + p} \right)\left( {y - q} \right)} & \left( {a = {{p\bigcap b} = {q + n_{y}}}} \right) \\ {\left( {x - p} \right)\left( {y - q} \right)} & {\left( {a = {{p + n_{x}\bigcap b} = {q + n_{y}}}} \right),} \end{matrix} \right.}$

and where n_(x) and n_(y) are the number of interpolation points on the x and y directions. In addition, the quantized indices p and q on nodes are functions of x and y to implement a truncation function, and are given by the following equation:

${\left\{ {p,q} \right\} = \left\{ {{n_{x}\left\lfloor \frac{x}{n_{x}} \right\rfloor},{n_{y}\left\lfloor \frac{y}{n_{y}} \right\rfloor}} \right\}},$

where └ ┘ denotes an integer operator. In this regard, p will take on a value of 0 for n_(x)=0, 1, 2 and 3, and then will take on a value of 4 for n_(x)=4, 5, 6 and 7, etc. Similarly, q will take on a value of 0 for n_(y)=0, 1, 2 and 3, and a value of 4 for n_(y)=4, 5, 6 and 7, etc.

The two-component velocity field v_(ij)(t₁)={u_(ij)(t₁), v_(ij)(t₁)} on pixel points with horizontal and vertical coordinates x and y in an image can be expressed by the following bilinear polynomial functions (3) with first order continuity that holds for all N_(x)×N_(y) image globally:

$\begin{matrix} {\left\{ {u_{ij},v_{ij}} \right\} = {\sum\limits_{\alpha = 0}^{1}{\sum\limits_{\beta = 0}^{1}{\left\{ {u_{{p + {\alpha \; n_{x}}},{q + {\beta \; n_{y}}}},v_{{p + {\alpha \; n_{x}}},{q + {\beta \; n_{y}}}}} \right\} {{H_{{p + {\alpha \; n_{x}}},{q + {\beta \; n_{y}}}}\left( {i,j} \right)}.}}}}} & (3) \end{matrix}$

All velocity off-node pixel locations (FIGS. 5 and 6) can be calculated by equation (3) using the velocity on node points 402 expressed as u_(pq) and v_(pq), where “k” is a node point index in the first direction x and “l” is a node point index in the second direction y. In this regard, the node point indexes k, l take values that are multiples of the block size during the iteration of the process 300. For instance, k can have values of 0, n_(x), 2n_(x), 3n_(x), etc. and l similarly can have values of 0, n_(y), 2n_(y), 3n_(y), . . . , etc.

In addition, the block size parameter “n” controls the degree of over-constraint of the equation system 130 according the following relationship n_(x)=n_(y)=n≧1 (M>2). Thus, all velocity vectors v_(ij) in equation (3) are no longer independent variables for n>1 except on node points 402 and all independent velocities on nodes 402 are interrelated in the entire image scene 400 by equation (3). The number of interpolation points related to the resolution of the velocity field 140 and the degree of the over-constraint can be controlled during the iterative process 300 by adjusting the block size parameter n≧1, as seen at 352 and 354 of FIG. 4B above. The inventor has appreciated that when n=1, all node points and pixel positions are overlapped together and the system becomes a fully constrained (M=3) or over-constrained system (M>3). The degree of the over-determined DFD equations for the nonlinear least-squares approach can thus be controlled by the adjustable parameters n_(x), n_(y), and M.

As seen in FIG. 7, an adaptive framework 500 allows this problem to be solved, in which the velocity field 140 is modeled at 502 (equation (3) above). As part of the adaptive framework 500, moreover, the model is globally optimized at 504 using a nonlinear least squares approach reflected in the cost function. This model is then used to solve the over-constrained equation system 130 for the velocity field u_(pq) and v_(pq) on nodes 402 as optimized parameters. The cost function in this example is a sum of the total errors of the DFD equations (1) based on the least-squares principle, as seen in the following equation (4):

$\begin{matrix} {{J = {\sum\limits_{i,j}{\sum\limits_{s = 2}^{M}{D\; F\; D_{ijs}^{2}}}}},} & (4) \end{matrix}$

where i and j are the pixel indices ranging over all pixels in an N_(x)×N_(y) image (iε[0, N_(x)] and jε[0, N_(y)]), sε[2, . . . , M], and M>2. The inventor has appreciated that minimizing the cost function (4) for the indices k and l for all node points 402 in an image 400 yields the following independent system equations:

${{\sum\limits_{i,{j \in \Omega}}{\sum\limits_{s = 2}^{M}{D\; F\; D_{ijs}\left\{ {\frac{\partial{DFD}_{ijs}}{\partial u_{kl}},\frac{\partial{DFD}_{ijs}}{\partial v_{kl}}} \right\}}}} = 0},$

where the summation denoted in above equations are given by

$\sum\limits_{i,{j \in \Omega}}{= {\sum\limits_{i = {k - n_{x} + 1}}^{k + n_{x} - 1}{\sum\limits_{j = {l - n_{y} + 1}}^{l + n_{y} - 1}.}}}$

To solve this nonlinear least-squares problem, a Gauss-Newton iteration technique is employed (e.g., FIGS. 4A and 4B above) using a Levenberg-Marquardt algorithm in order to improve convergence properties. In the illustrated embodiments, minimization of the cost function (4) for the indices k and I for all node points 402 in an image 400 at 506 in FIG. 7 yields the following iterative equations (5) for all indexes k and l:

     v_(kl)^((m + 1)) = v_(kl)^((m)) − (A_(kl)^((m)))⁻¹B_(kl)^((m)),      where $A_{kl}^{(m)} = \begin{pmatrix} {\left( {\lambda + 1} \right){\sum\limits_{i,{j \in \Omega}}{\sum\limits_{s = 2}^{M}\left( \frac{{\partial D}\; F\; D_{ijs}^{(m)}}{\partial u_{kl}^{(m)}} \right)^{2}}}} & {\sum\limits_{i,{j \in \Omega}}{\sum\limits_{s = 2}^{M}{\frac{{\partial D}\; F\; D_{ijs}^{(m)}}{\partial u_{kl}^{(m)}}\frac{{\partial D}\; F\; D_{ijs}^{(m)}}{\partial v_{kl}^{(m)}}}}} \\ {\sum\limits_{i,{j \in \Omega}}{\sum\limits_{s = 2}^{M}{\frac{{\partial D}\; F\; D_{ijs}^{(m)}}{\partial u_{kl}^{(m)}}\frac{{\partial D}\; F\; D_{ijs}^{(m)}}{\partial v_{kl}^{(m)}}}}} & {\left( {\lambda + 1} \right){\sum\limits_{i,{j \in \Omega}}{\sum\limits_{s = 2}^{M}\left( \frac{{\partial D}\; F\; D_{ijs}^{(m)}}{\partial v_{kl}^{(m)}} \right)^{2}}}} \end{pmatrix}$      and $\mspace{79mu} {B_{kl}^{(m)} = {\begin{pmatrix} {\sum\limits_{i,{j \in \Omega}}{\sum\limits_{s = 2}^{M}{D\; F\; D_{ijs}^{(m)}}}} & \frac{{\partial D}\; F\; D_{ijs}^{(m)}}{\partial u_{kl}^{(m)}} \\ {\sum\limits_{i,{j \in \Omega}}{\sum\limits_{s = 2}^{M}{D\; F\; D_{ijs}^{(m)}}}} & \frac{{\partial D}\; F\; D_{ijs}^{(m)}}{\partial v_{kl}^{(m)}} \end{pmatrix}.}}$

At 508 in FIG. 7, algorithms are derived for solving the equations 130. In this regard, the Levenberg-Marquardt factor λ≧0 is adjusted at each iteration (e.g., 342 in FIG. 4B above) to guarantee that the cost function (4) is converging. The degree of over-constraint for the equation system 130 can therefore be controlled by the adjustable block size parameter n≧1 with this algorithm.

As seen in the exemplary embodiment of FIGS. 4A and 4B above, the process 300 starts from a set of preset initial values of the conservative velocity field (302) at time t₁. An iteration step based on the current conservative velocity field at time t₁ and the iterative of equation (5) is then performed by the estimator 100. In certain embodiments, the estimation employs a Gauss-Seidel type iteration algorithm using updated values of u_(pq) ^((m)) and v_(pq) ^((m)) on the right-hand side of equation (5) as soon as they become available during the iteration processing. Since many local minimum solutions may exist under lower degrees of the over-constrained equation set 130, an algorithm of progressive relaxation of over-constraint is also employed (adjustment of the block size at 350, 352, 354 and FIG. 4B above) in order to adapt a variable resolution of the velocity structure during the iterations. In the illustrated implementation, the block size parameter n=n₀+10 is selected as the initial value (higher degree of over-constraint) and it reaches a preset value of n₀ (e.g., 5) at the end (350 in FIG. 4B). This process regularizes the conservative velocity field by changing the parameter n from a larger value (higher degree of over-constraint) to a smaller one (lower degree of over-constraint) by one every ten iterations until it approaches the preset value of n₀, a technique referred to as an algorithm of progressive relaxation of over-constraint. Moreover, in the above implementation, all initial velocity field vectors are preset to 0.01, and the initial Levenberg-Marquardt factor λ is set to 0.001 and is multiplied by ten in each step if the iteration is not converging, although not strict requirements of the present disclosure.

As noted above, conventional block matching algorithms (BMA) used for video compression utilize a block-based model to estimate a single motion vector for each block and assume that this philosophy vector is uniform within the block. The vector field estimated using this block-based model is not continuous. In contrast, however, the velocities on nodes 402 estimated by the above framework 500 are continuous and globally optimized, and all velocity vectors 140 on pixel points i, j can be changed and calculated by the modeled field function in equation (3). Using almost the same number of velocity vectors 140 in a fixed block size “n₀” for both approaches, the presently disclosed framework 500 can provide much higher accuracy performance than the block-based model. Application to systems in which most of the motions in an image scene are conservative or near conservative in a certain temporal interval with multi-image sequences results in a single conservative velocity field 140 in this temporal range that crosses several successive frames 12. The number of unknowns in this case (the two velocity components u_(ij) and v_(ij) at a fixed pixel point i, j) is equal to two. Since the number of DFD equations (1) is equal to M−1, the system 130 is fully constrained or over-constrained if M>2 for the conservative velocity field 140. The framework 500 of FIG. 7 with displaced frame difference (DFD) equations 130, spatial velocity modeling at 502, a nonlinear least-squares model at 504, and Gauss-Newton and Levenberg-Marquardt algorithms at 506 and 508 for solving the nonlinear system provides for improved velocity estimation in which all but one frame 12 of an input sequence 10 can be synthesized by motion compensated prediction and interpolation (MCI). Moreover, this framework 500 can estimate a large-scale motion field that crosses more than two successive frames 12, particularly where most motions in the scene in the temporal interval are conservative or near conservative.

The above examples are merely illustrative of several possible embodiments of various aspects of the present disclosure, wherein equivalent alterations and/or modifications will occur to others skilled in the art upon reading and understanding this specification and the annexed drawings. In particular regard to the various functions performed by the above described components (processor-executed processes, assemblies, devices, systems, circuits, and the like), the terms (including a reference to a “means”) used to describe such components are intended to correspond, unless otherwise indicated, to any component, such as hardware, processor-executed software, or combinations thereof, which performs the specified function of the described component (i.e., that is functionally equivalent), even though not structurally equivalent to the disclosed structure which performs the function in the illustrated implementations of the disclosure. In addition, although a particular feature of the disclosure may have been illustrated and/or described with respect to only one of several implementations, such feature may be combined with one or more other features of the other implementations as may be desired and advantageous for any given or particular application. Also, to the extent that the terms “including”, “includes”, “having”, “has”, “with”, or variants thereof are used in the detailed description and/or in the claims, such terms are intended to be inclusive in a manner similar to the term “comprising”. 

1. A method for estimating a velocity field using an image sequence having more than two frames, the method comprising: providing a set of equations including an integer number M−1 displaced frame difference equations, where M is greater than 2; receiving an input image sequence comprising at least M image frames individually including multidimensional image data corresponding to a plurality of pixel locations at M different times; and using at least one processor, solving the equation set using a set of iteration equations and the image data of the M image frames to determine a velocity field describing velocity vectors at pixel locations at a first one of the M different times.
 2. The method of claim 1, wherein the displaced frame difference equations are given by: DFD_(ijs) =l(i+(t _(s) −t ₁)u _(ij) ,j+(t _(s) −t ₁)v _(ij) ,t _(s))−l _(ij)(t ₁)=0∀(1<s≦M); and wherein l is an intensity of the image data, i is a pixel index in a first direction x, j is a pixel index in a second direction y orthogonal to the first direction x, s is a frame index, t_(s) is a time corresponding to a currently indexed frame, t₁ is the first one of the M different times, u_(ij) is a first component of the velocity field along the first direction acts, and v_(ij) is a second component of the velocity field along the second direction y.
 3. The method of claim 2, wherein the iteration equations for solving the velocities on node points are given by:      v_(kl)^((m + 1)) = v_(kl)^((m)) − (A_(kl)^((m)))⁻¹B_(kl)^((m)), where: ${A_{kl}^{(m)} = \begin{pmatrix} {\left( {\lambda + 1} \right){\sum\limits_{i,{j \in \Omega}}{\sum\limits_{s = 2}^{M}\left( \frac{{\partial D}\; F\; D_{ijs}^{(m)}}{\partial u_{kl}^{(m)}} \right)^{2}}}} & {\sum\limits_{i,{j \in \Omega}}{\sum\limits_{s = 2}^{M}{\frac{{\partial D}\; F\; D_{ijs}^{(m)}}{\partial u_{kl}^{(m)}}\frac{{\partial D}\; F\; D_{ijs}^{(m)}}{\partial v_{kl}^{(m)}}}}} \\ {\sum\limits_{i,{j \in \Omega}}{\sum\limits_{s = 2}^{M}{\frac{{\partial D}\; F\; D_{ijs}^{(m)}}{\partial u_{kl}^{(m)}}\frac{{\partial D}\; F\; D_{ijs}^{(m)}}{\partial v_{kl}^{(m)}}}}} & {\left( {\lambda + 1} \right){\sum\limits_{i,{j \in \Omega}}{\sum\limits_{s = 2}^{M}\left( \frac{{\partial D}\; F\; D_{ijs}^{(m)}}{\partial v_{kl}^{(m)}} \right)^{2}}}} \end{pmatrix}},\mspace{79mu} {and}$ $\mspace{79mu} {B_{kl}^{(m)} = {\begin{pmatrix} {\sum\limits_{i,{j \in \Omega}}{\sum\limits_{s = 2}^{M}{D\; F\; D_{ijs}^{(m)}}}} & \frac{{\partial D}\; F\; D_{ijs}^{(m)}}{\partial u_{kl}^{(m)}} \\ {\sum\limits_{i,{j \in \Omega}}{\sum\limits_{s = 2}^{M}{D\; F\; D_{ijs}^{(m)}}}} & \frac{{\partial D}\; F\; D_{ijs}^{(m)}}{\partial v_{kl}^{(m)}} \end{pmatrix}.}}$ where the summation is given by: ${\sum\limits_{i,{j \in \Omega}}{= {\sum\limits_{i = {k - n_{x} + 1}}^{k + n_{x} - 1}\sum\limits_{j = {l - n_{y} + 1}}^{l + n_{y} - 1}}}},{and}$ where m is an iteration index, k is a node point index in the first direction x, l is a node point index in the second direction y, Ω is a local domain of pixel locations near a given node pixel location, u_(kl) is a first component of the velocity field along the first direction x, v_(kl) is a second component of the velocity field along the second direction y, and λ is a Levenberg-Marquardt factor; wherein solving the equation set comprises evaluating derivatives with respect variables u_(ij) and v_(ij) in the iteration equations by the following bilinear function: $\mspace{79mu} \left\{ {\begin{matrix} {\frac{{\partial D}\; F\; D_{ijs}}{\partial u_{kl}} = {{\left( {t_{s} - t_{1}} \right)\frac{\partial u_{ij}}{\partial u_{kl}}\frac{\partial{l\left( {x,{j + {\left( {t_{s} - t_{1}} \right)v_{ij}}},t_{s}} \right)}}{\partial x}}_{x = {i + {{({t_{s} - t_{1}})}u_{ij}}}}}} \\ {\frac{{\partial D}\; F\; D_{ijs}}{\partial v_{kl}} = {{\left( {t_{s} - t_{1}} \right)\frac{\partial v_{ij}}{\partial v_{kl}}\frac{\partial{l\left( {{i + {\left( {t_{s} - t_{1}} \right)u_{ij}}},y,t_{s}} \right)}}{\partial y}}_{y = {j + {{({t_{s} - t_{1}})}v_{ij}}}}}} \end{matrix},\mspace{79mu} {{{where}\mspace{79mu} \frac{\partial u_{ij}}{\partial u_{kl}}} = {\frac{\partial v_{ij}}{\partial v_{kl}} = {\sum\limits_{\alpha = 0}^{1}{\sum\limits_{\beta = 0}^{1}{{H_{k,l}\left( {i,j} \right)}\delta_{k,{p + {\alpha \; n_{x}}}}\delta_{l,{q + {\beta \; n_{y}}}}}}}}},\mspace{79mu} {{{where}{H_{a,b}\left( {x,y} \right)}} = {\frac{1}{n_{x}n_{y}}\left\{ \begin{matrix} {\left( {n_{x} - x + p} \right)\left( {n_{y} - y + q} \right)} & \left( {a = {{p\bigcap b} = q}} \right) \\ {\left( {x - p} \right)\left( {n_{y} - y + q} \right)} & \left( {a = {{p + n_{x}\bigcap b} = q}} \right) \\ {\left( {n_{x} - x + p} \right)\left( {y - q} \right)} & \left( {a = {{p\bigcap b} = {q + n_{y}}}} \right) \\ {\left( {x - p} \right)\left( {y - q} \right)} & {\left( {a = {{p + n_{x}\bigcap b} = {q + n_{y}}}} \right),} \end{matrix} \right.}}} \right.$ where n_(x) and n_(y) are the number of interpolation points on the first and second directions, respectively; and wherein quantized indices on nodes are functions of x and y, and are given by the following: ${\left\{ {p,q} \right\} = \left\{ {{n_{x}\left\lfloor \frac{x}{n_{x}} \right\rfloor},{n_{y}\left\lfloor \frac{y}{n_{y}} \right\rfloor}} \right\}},$ where └ ┘ denotes an integer operator.
 4. The method of claim 3, wherein solving the equation set comprises: starting an iteration with an initial block size n defining initial values for the number of interpolation points n_(x) and n_(y) on the first and second directions, respectively; and selectively reducing the block size n during the iteration to progressively relax an amount of over-constraint of the equation set.
 5. The method of claim 2, wherein solving the equation set comprises: starting an iteration with an initial block size n defining initial values for a number of interpolation points n_(x) and n_(y) on the first and second directions, respectively; and selectively reducing the block size n during the iteration to progressively relax an amount of over-constraint of the equation set.
 6. The method of claim 1, wherein solving the equation set comprises: starting an iteration with an initial block size n defining initial values for a number of interpolation points n_(x) and n_(y) on first and second directions, respectively; and selectively reducing the block size n during the iteration to progressively relax an amount of over-constraint of the equation set.
 7. A motion estimator apparatus, comprising: at least one processor; and a memory storing a set of equations including an integer number M−1 displaced frame difference equations, where M is greater than 2; the at least one processor operative to receive an input image sequence comprising at least M image frames individually including multidimensional image data corresponding to a plurality of pixel locations at M different times; and the at least one processor operative to solve the equation set using a set of iteration equations and the image data of the M image frames to determine a velocity field describing velocity vectors at pixel locations at a first one of the M different times.
 8. The motion estimator apparatus of claim 7, wherein the displaced frame difference equations are given by: DFD_(ijs) =l(i+(t _(s) −t ₁)u _(ij) ,j+(t _(s) −t ₁)v _(ij) ,t _(s))−l _(ij)(t ₁)=0∀(1<s≦M); and wherein, l is an intensity of the image data, i is a pixel index in a first direction x, j is a pixel index in a second direction y orthogonal to the first direction x, s is a frame index, t_(s) is a time corresponding to a currently indexed frame, t₁ is the first one of the M different times, u_(ij) is a first component of the velocity field along the first direction acts, and v_(ij) is a second component of the velocity field along the second direction y.
 9. The motion estimator apparatus of claim 8, wherein the iteration equations are given by:      v_(kl)^((m + 1)) = v_(kl)^((m)) − (A_(kl)^((m)))⁻¹B_(kl)^((m)), where: ${A_{kl}^{(m)} = \begin{pmatrix} {\left( {\lambda + 1} \right){\sum\limits_{i,{j \in \Omega}}{\sum\limits_{s = 2}^{M}\left( \frac{{\partial D}\; F\; D_{ijs}^{(m)}}{\partial u_{kl}^{(m)}} \right)^{2}}}} & {\sum\limits_{i,{j \in \Omega}}{\sum\limits_{s = 2}^{M}{\frac{{\partial D}\; F\; D_{ijs}^{(m)}}{\partial u_{kl}^{(m)}}\frac{{\partial D}\; F\; D_{ijs}^{(m)}}{\partial v_{kl}^{(m)}}}}} \\ {\sum\limits_{i,{j \in \Omega}}{\sum\limits_{s = 2}^{M}{\frac{{\partial D}\; F\; D_{ijs}^{(m)}}{\partial u_{kl}^{(m)}}\frac{{\partial D}\; F\; D_{ijs}^{(m)}}{\partial v_{kl}^{(m)}}}}} & {\left( {\lambda + 1} \right){\sum\limits_{i,{j \in \Omega}}{\sum\limits_{s = 2}^{M}\left( \frac{{\partial D}\; F\; D_{ijs}^{(m)}}{\partial v_{kl}^{(m)}} \right)^{2}}}} \end{pmatrix}},\mspace{79mu} {and}$ $\mspace{79mu} {B_{kl}^{(m)} = {\begin{pmatrix} {\sum\limits_{i,{j \in \Omega}}{\sum\limits_{s = 2}^{M}{D\; F\; D_{ijs}^{(m)}}}} & \frac{{\partial D}\; F\; D_{ijs}^{(m)}}{\partial u_{kl}^{(m)}} \\ {\sum\limits_{i,{j \in \Omega}}{\sum\limits_{s = 2}^{M}{D\; F\; D_{ijs}^{(m)}}}} & \frac{{\partial D}\; F\; D_{ijs}^{(m)}}{\partial v_{kl}^{(m)}} \end{pmatrix}.}}$ where the summation is given by: ${\sum\limits_{i,{j \in \Omega}}{= {\sum\limits_{i = {k - n_{x} + 1}}^{k + n_{x} - 1}\sum\limits_{j = {l - n_{y} + 1}}^{l + n_{y} - 1}}}},{and}$ where m is an iteration index, k is a node point index in the first direction x, l is a node point index in the second direction y, Ω is a local domain of pixel locations near a given node pixel location, u_(kl) is a first component of the velocity field along the first direction x, v_(kl) is a second component of the velocity field along the second direction y, and λ is a Levenberg-Marquardt factor; wherein the at least one processor is operative to solve the equation set by evaluating derivatives with respect variables u_(ij) and v_(ij) in the iteration equations by the following bilinear function: $\mspace{79mu} \left\{ {\begin{matrix} {\frac{{\partial D}\; F\; D_{ijs}}{\partial u_{kl}} = {{\left( {t_{s} - t_{1}} \right)\frac{\partial u_{ij}}{\partial u_{kl}}\frac{\partial{I\left( {x,{j + {\left( {t_{s} - t_{1}} \right)v_{ij}}},t_{s}} \right)}}{\partial x}}_{x = {i + {{({t_{s} - t_{1}})}u_{ij}}}}}} \\ {\frac{{\partial D}\; F\; D_{ijs}}{\partial v_{kl}} = {{\left( {t_{s} - t_{1}} \right)\frac{\partial v_{ij}}{\partial v_{kl}}\frac{\partial{I\left( {{i + {\left( {t_{s} - t_{1}} \right)u_{ij}}},y,t_{s}} \right)}}{\partial y}}_{y = {j + {{({t_{s} - t_{1}})}v_{ij}}}}}} \end{matrix},\mspace{79mu} {{{where}\mspace{79mu} \frac{\partial u_{ij}}{\partial u_{kl}}} = {\frac{\partial v_{ij}}{\partial v_{kl}} = {\sum\limits_{\alpha = 0}^{1}{\sum\limits_{\beta = 0}^{1}{{H_{k,l}\left( {i,j} \right)}\delta_{k,{p + {\alpha \; n_{x}}}}\delta_{l,{q + {\beta \; n_{y}}}}}}}}},\mspace{79mu} {{{where}{H_{a,b}\left( {x,y} \right)}} = {\frac{1}{n_{x}n_{y}}\left\{ \begin{matrix} {\left( {n_{x} - x + p} \right)\left( {n_{y} - y + q} \right)} & \left( {a = {{p\bigcap b} = q}} \right) \\ {\left( {x - p} \right)\left( {n_{y} - y + q} \right)} & \left( {a = {{p + n_{x}\bigcap b} = q}} \right) \\ {\left( {n_{x} - x + p} \right)\left( {y - q} \right)} & \left( {a = {{p\bigcap b} = {q + n_{y}}}} \right) \\ {\left( {x - p} \right)\left( {y - q} \right)} & {\left( {a = {{p + n_{x}\bigcap b} = {q + n_{y}}}} \right),} \end{matrix} \right.}}} \right.$ where n_(x) and n_(y) are the number of interpolation points on the first and second directions, respectively; and wherein quantized indices on nodes are functions of x and y, and are given by the following: ${\left\{ {p,q} \right\} = \left\{ {{n_{x}\left\lfloor \frac{x}{n_{x}} \right\rfloor},{n_{y}\left\lfloor \frac{y}{n_{y}} \right\rfloor}} \right\}},$ where └ ┘ denotes an integer operator.
 10. The motion estimator apparatus of claim 9, wherein the at least one processor is operative to solve the equation set by: starting an iteration with an initial block size n defining initial values for the number of interpolation points n_(x) and n_(y) on the first and second directions, respectively; and selectively reducing the block size n during the iteration to progressively relax an amount of over-constraint of the equation set.
 11. The motion estimator apparatus of claim 8, wherein the at least one processor is operative to solve the equation set by: starting an iteration with an initial block size n defining initial values for a number of interpolation points n_(x) and n_(y) on the first and second directions, respectively; and selectively reducing the block size n during the iteration to progressively relax an amount of over-constraint of the equation set.
 12. The motion estimator apparatus of claim 7, wherein the at least one processor is operative to solve the equation set by: starting an iteration with an initial block size n defining initial values for a number of interpolation points n_(x) and n_(y) on first and second directions, respectively; and selectively reducing the block size n during the iteration to progressively relax an amount of over-constraint of the equation set.
 13. A computer readable medium with computer executable instructions for: providing a set of equations including an integer number M−1 displaced frame difference equations, where M is greater than 2; receiving an input image sequence comprising at least M image frames individually including multidimensional image data corresponding to a plurality of pixel locations at M different times; and using at least one processor, solving the equation set using a set of iteration equations and the image data of the M image frames to determine a velocity field describing velocity vectors at pixel locations at a first one of the M different times.
 14. The computer readable medium of claim 13, wherein the displaced frame difference equations are given by: DFD_(ijs) =l(i+(t _(s) −t ₁)u _(ij) ,j+(t _(s) −t ₁)v _(ij) ,t _(s))−l _(ij)(t ₁)=0∀(1<s≦M); and wherein, l is an intensity of the image data, i is a pixel index in a first direction x, j is a pixel index in a second direction y orthogonal to the first direction x, s is a frame index, t_(s) is a time corresponding to a currently indexed frame, t₁ is the first one of the M different times, u_(ij) is a first component of the velocity field along the first direction acts, and v_(ij) is a second component of the velocity field along the second direction y.
 15. The computer readable medium of claim 14, wherein the iteration equations are given by:      v_(kl)^((m + 1)) = v_(kl)^((m)) − (A_(kl)^((m)))⁻¹B_(kl)^((m)), where: ${A_{kl}^{(m)} = \begin{pmatrix} {\left( {\lambda + 1} \right){\sum\limits_{i,{j \in \Omega}}{\sum\limits_{s = 2}^{M}\left( \frac{{\partial D}\; F\; D_{ijs}^{(m)}}{\partial u_{kl}^{(m)}} \right)^{2}}}} & {\sum\limits_{i,{j \in \Omega}}{\sum\limits_{s = 2}^{M}{\frac{{\partial D}\; F\; D_{ijs}^{(m)}}{\partial u_{kl}^{(m)}}\frac{{\partial D}\; F\; D_{ijs}^{(m)}}{\partial v_{kl}^{(m)}}}}} \\ {\sum\limits_{i,{j \in \Omega}}{\sum\limits_{s = 2}^{M}{\frac{{\partial D}\; F\; D_{ijs}^{(m)}}{\partial u_{kl}^{(m)}}\frac{{\partial D}\; F\; D_{ijs}^{(m)}}{\partial v_{kl}^{(m)}}}}} & {\left( {\lambda + 1} \right){\sum\limits_{i,{j \in \Omega}}{\sum\limits_{s = 2}^{M}\left( \frac{{\partial D}\; F\; D_{ijs}^{(m)}}{\partial v_{kl}^{(m)}} \right)^{2}}}} \end{pmatrix}},\mspace{79mu} {and}$ $\mspace{79mu} {B_{kl}^{(m)} = {\begin{pmatrix} {\sum\limits_{i,{j \in \Omega}}{\sum\limits_{s = 2}^{M}{D\; F\; D_{ijs}^{(m)}}}} & \frac{{\partial D}\; F\; D_{ijs}^{(m)}}{\partial u_{kl}^{(m)}} \\ {\sum\limits_{i,{j \in \Omega}}{\sum\limits_{s = 2}^{M}{D\; F\; D_{ijs}^{(m)}}}} & \frac{{\partial D}\; F\; D_{ijs}^{(m)}}{\partial v_{kl}^{(m)}} \end{pmatrix}.}}$ where the summation is given by: ${\sum\limits_{i,{j \in \Omega}}{= {\sum\limits_{i = {k - n_{x} + 1}}^{k + n_{x} - 1}\sum\limits_{j = {l - n_{y} + 1}}^{l + n_{y} - 1}}}},{and}$ where m is an iteration index, k is a node point index in the first direction x, l is a node point index in the second direction y, Ω is a local domain of pixel locations near a given node pixel location, u_(kl) is a first component of the velocity field along the first direction x, v_(kl) is a second component of the velocity field along the second direction y, and λ is a Levenberg-Marquardt factor; wherein the computer readable medium comprises computer executable instructions for evaluating derivatives with respect variables u_(ij) and v_(ij) in the iteration equations by the following bilinear function: $\mspace{79mu} \left\{ {\begin{matrix} {\frac{{\partial D}\; F\; D_{ijs}}{\partial u_{kl}} = {{\left( {t_{s} - t_{1}} \right)\frac{\partial u_{ij}}{\partial u_{kl}}\frac{\partial{l\left( {x,{j + {\left( {t_{s} - t_{1}} \right)v_{ij}}},t_{s}} \right)}}{\partial x}}_{x = {i + {{({t_{s} - t_{1}})}u_{ij}}}}}} \\ {\frac{{\partial D}\; F\; D_{ijs}}{\partial v_{kl}} = {{\left( {t_{s} - t_{1}} \right)\frac{\partial v_{ij}}{\partial v_{kl}}\frac{\partial{l\left( {{i + {\left( {t_{s} - t_{1}} \right)u_{ij}}},y,t_{s}} \right)}}{\partial y}}_{y = {j + {{({t_{s} - t_{1}})}v_{ij}}}}}} \end{matrix},\mspace{79mu} {{{where}\mspace{79mu} \frac{\partial u_{ij}}{\partial u_{kl}}} = {\frac{\partial v_{ij}}{\partial v_{kl}} = {\sum\limits_{\alpha = 0}^{1}{\sum\limits_{\beta = 0}^{1}{{H_{k,l}\left( {i,j} \right)}\delta_{k,{p + {\alpha \; n_{x}}}}\delta_{l,{q + {\beta \; n_{y}}}}}}}}},\mspace{79mu} {{{where}{H_{a,b}\left( {x,y} \right)}} = {\frac{1}{n_{x}n_{y}}\left\{ \begin{matrix} {\left( {n_{x} - x + p} \right)\left( {n_{y} - y + q} \right)} & \left( {a = {{p\bigcap b} = q}} \right) \\ {\left( {x - p} \right)\left( {n_{y} - y + q} \right)} & \left( {a = {{p + n_{x}\bigcap b} = q}} \right) \\ {\left( {n_{x} - x + p} \right)\left( {y - q} \right)} & \left( {a = {{p\bigcap b} = {q + n_{y}}}} \right) \\ {\left( {x - p} \right)\left( {y - q} \right)} & {\left( {a = {{p + n_{x}\bigcap b} = {q + n_{y}}}} \right),} \end{matrix} \right.}}} \right.$ where n_(x) and n_(y) are the number of interpolation points on the first and second directions, respectively; and wherein quantized indices on nodes are functions of x and y, and are given by the following: ${\left\{ {p,q} \right\} = \left\{ {{n_{x}\left\lfloor \frac{x}{n_{x}} \right\rfloor},{n_{y}\left\lfloor \frac{y}{n_{y}} \right\rfloor}} \right\}},$ where └ ┘ denotes an integer operator.
 16. The computer readable medium of claim 15, comprising computer executable instructions for: starting an iteration with an initial block size n defining initial values for the number of interpolation points n_(x) and n_(y) on the first and second directions, respectively; and selectively reducing the block size n during the iteration to progressively relax an amount of over-constraint of the equation set.
 17. The computer readable medium of claim 14, comprising computer executable instructions for: starting an iteration with an initial block size n defining initial values for a number of interpolation points n_(x) and n_(y) on the first and second directions, respectively; and selectively reducing the block size n during the iteration to progressively relax an amount of over-constraint of the equation set.
 18. The computer readable medium of claim 13, comprising computer executable instructions for: starting an iteration with an initial block size n defining initial values for a number of interpolation points n_(x) and n_(y) on first and second directions, respectively; and selectively reducing the block size n during the iteration to progressively relax an amount of over-constraint of the equation set. 